package com.jrx.anytxn.customer.dto.customer;

import com.jrx.anytxn.common.constant.RegexConstant;
import com.jrx.anytxn.customer.dto.BaseApiReq;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.List;

/**
 * 客户信息补充的请求
 * @author xqy
 * @version 1.0
 * @date 2019/11/19
 */
public class CustomerSupplyReq  extends BaseApiReq implements Serializable {


    private static final long serialVersionUID = 865503307428144815L;
    @NotBlank(message = "证件号不能为空")
    @Pattern(regexp = RegexConstant.ID_NO, message = "身份证号码格式不正确")
    @ApiModelProperty(value="证件号码")
    private String idNumber;

    @NotBlank(message = "手机号不能为空")
    @Pattern(regexp = RegexConstant.MOBILE_FORMAT, message = "手机号格式不对，请正确输入")
    @ApiModelProperty(value="手机号")
    private String mobile;

    @ApiModelProperty(value="国家")
    private String nationality;

    @ApiModelProperty(value="民族")
    private String race;

    @ApiModelProperty(value="家庭电话")
    private String homePhone;

    @ApiModelProperty(value="公司名称")
    private String companyName;

    @ApiModelProperty(value="公司性质")
    private String companyAttribute;

    @ApiModelProperty(value="公司电话")
    private String companyPhone;

    @ApiModelProperty(value="客群标志")
    private String customerGroup;

    @ApiModelProperty(value="婚姻状态")
    private String maritalStatus;

    @ApiModelProperty(value="学历")
    private String education;

    @ApiModelProperty(value="职业小类")
    private String occuptionType;

    @ApiModelProperty(value = "职业大类")
    private String occuptionPrimaryType;

    @ApiModelProperty(value="居住状况")
    private String familyStatus;

    @ApiModelProperty(value="职务")
    private String position;

    @ApiModelProperty(value="单位所属行业")
    private String industry;

    @ApiModelProperty(value = "推荐人编号")
    private String referCode;

    @ApiModelProperty(value = "客户经理编号")
    private String managerCode;

    @ApiModelProperty(value = "分支行机构号")
    private String bankOrgNo;

    @ApiModelProperty(value = "分支行机构名称")
    private String bankOrgName;

    @ApiModelProperty(value = "签发机关归属地")
    private String disLegalId;

    @Valid
    @ApiModelProperty(value="地址信息列表")
    private List<AddressInfoReq> addressInfoList;

    @Valid
    @ApiModelProperty(value="联系人信息列表")
    private List<ContactInfoReq> contactInfoList;

    public String getIdNumber() {
        return idNumber;
    }

    public void setIdNumber(String idNumber) {
        this.idNumber = idNumber;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getNationality() {
        return nationality;
    }

    public void setNationality(String nationality) {
        this.nationality = nationality;
    }

    public String getRace() {
        return race;
    }

    public void setRace(String race) {
        this.race = race;
    }

    public String getHomePhone() {
        return homePhone;
    }

    public void setHomePhone(String homePhone) {
        this.homePhone = homePhone;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getCompanyAttribute() {
        return companyAttribute;
    }

    public void setCompanyAttribute(String companyAttribute) {
        this.companyAttribute = companyAttribute;
    }

    public String getCompanyPhone() {
        return companyPhone;
    }

    public void setCompanyPhone(String companyPhone) {
        this.companyPhone = companyPhone;
    }

    public String getCustomerGroup() {
        return customerGroup;
    }

    public void setCustomerGroup(String customerGroup) {
        this.customerGroup = customerGroup;
    }

    public List<AddressInfoReq> getAddressInfoList() {
        return addressInfoList;
    }

    public void setAddressInfoList(List<AddressInfoReq> addressInfoList) {
        this.addressInfoList = addressInfoList;
    }

    public List<ContactInfoReq> getContactInfoList() {
        return contactInfoList;
    }

    public void setContactInfoList(List<ContactInfoReq> contactInfoList) {
        this.contactInfoList = contactInfoList;
    }

    public String getMaritalStatus() {
        return maritalStatus;
    }

    public void setMaritalStatus(String maritalStatus) {
        this.maritalStatus = maritalStatus;
    }

    public String getEducation() {
        return education;
    }

    public void setEducation(String education) {
        this.education = education;
    }

    public String getOccuptionType() {
        return occuptionType;
    }

    public void setOccuptionType(String occuptionType) {
        this.occuptionType = occuptionType;
    }

    public String getFamilyStatus() {
        return familyStatus;
    }

    public void setFamilyStatus(String familyStatus) {
        this.familyStatus = familyStatus;
    }

    public String getPosition() {
        return position;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public String getIndustry() {
        return industry;
    }

    public void setIndustry(String industry) {
        this.industry = industry;
    }

    public String getOccuptionPrimaryType() {
        return occuptionPrimaryType;
    }

    public void setOccuptionPrimaryType(String occuptionPrimaryType) {
        this.occuptionPrimaryType = occuptionPrimaryType;
    }

    public String getReferCode() {
        return referCode;
    }

    public void setReferCode(String referCode) {
        this.referCode = referCode;
    }

    public String getManagerCode() {
        return managerCode;
    }

    public void setManagerCode(String managerCode) {
        this.managerCode = managerCode;
    }

    public String getBankOrgNo() {
        return bankOrgNo;
    }

    public void setBankOrgNo(String bankOrgNo) {
        this.bankOrgNo = bankOrgNo;
    }

    public String getDisLegalId() {
        return disLegalId;
    }

    public void setDisLegalId(String disLegalId) {
        this.disLegalId = disLegalId;
    }

    public String getBankOrgName() {
        return bankOrgName;
    }

    public void setBankOrgName(String bankOrgName) {
        this.bankOrgName = bankOrgName;
    }

    @Override
    public String toString() {
        return "CustomerSupplyReq{" +
                "idNumber='" + idNumber + '\'' +
                ", mobile='" + mobile + '\'' +
                ", nationality='" + nationality + '\'' +
                ", race='" + race + '\'' +
                ", homePhone='" + homePhone + '\'' +
                ", companyName='" + companyName + '\'' +
                ", companyAttribute='" + companyAttribute + '\'' +
                ", companyPhone='" + companyPhone + '\'' +
                ", customerGroup='" + customerGroup + '\'' +
                ", maritalStatus='" + maritalStatus + '\'' +
                ", education='" + education + '\'' +
                ", occuptionType='" + occuptionType + '\'' +
                ", occuptionPrimaryType='" + occuptionPrimaryType + '\'' +
                ", familyStatus='" + familyStatus + '\'' +
                ", position='" + position + '\'' +
                ", industry='" + industry + '\'' +
                ", referCode='" + referCode + '\'' +
                ", managerCode='" + managerCode + '\'' +
                ", bankOrgNo='" + bankOrgNo + '\'' +
                ", bankOrgName='" + bankOrgName + '\'' +
                ", disLegalId='" + disLegalId + '\'' +
                '}';
    }
}